﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Client.Encriptacion.logica
{
    class AlgoritmoDES
    {
        AlgoritmoDES() { }

        public static BitArray[] ProcesoIter(BitArray[] entrada, BitArray[] keys, int iteracion)
        {
            BitArray expandida = Permutar.permutarBien(entrada[1], Cajas.expansion);//lado derecho
            BitArray xorListo = XOR.xor(expandida, keys[iteracion]);
            //IO.ImprimeBitArray(xorListo,6);
            BitArray[] pedazos = Dividir.dividir(xorListo, 8);
            //IO.ImprimeBitArray(pedazos[0],6);
            BitArray f = Concatenar.concatenar(Funcion_S.funcion_s(pedazos));
            //IO.ImprimeBitArray(f, 8);
            BitArray final = Permutar.permutarBien(f, Cajas.permutacion);
            BitArray resultadoXor = XOR.xor(final, entrada[0]);
            //IO.ImprimeBitArray(resultadoXor, 8);
            BitArray[] retorno = new BitArray[2];
            retorno[0] = entrada[1];
            retorno[1] = resultadoXor;
            return retorno;
        }
    }
}
